💡 在本文章你將學到:如何抓到含有巨集 / VBA 的 Excel 路徑以使用在 Power Automate
最近因為工作需求,案主希望可以將 Business Central(Dynamic 365)的記錄在經過整理後,可以自動謄寫到 Excel,並且能在其中記錄在定期更新後有任何變動除了在 Change Log 保留變動紀錄,在 Report 可以,這個動作是採用巨集完成,可以參考下方流程圖。Excel 在使用 VBA 之後就會從 xls → xlsm,在 Power Automate 是無法直接取得的,本篇文章將與讀者分享如何透過 Microsoft Graph Explorer 取得 xlsm 的 ID。
請參考我在 2024 IT 鐵人賽完賽的文章 - API 探索之旅:如何通過 Microsoft Graph Explorer 獲取重要資訊,而如果非要以一句話概括,我會說它是一個可以找到微軟各種微軟下我們建立的任何足跡的鑰匙,也就是 API。
而 GenAI - Perplexity 是這麼回答的
Microsoft Graph Explorer 是一個強大的工具,允許開發者和使用者方便地測試和查詢 Microsoft Graph API,以便輕鬆訪問和管理 Microsoft 365 的各種資源。
根據我們的需求:抓到 xlsm 的 ID,進而取得檔案裡的紀錄
首先我們要先定位,進入 Graph Explorer 之後,先取得檔案來源,我是將記錄放在 SharePoint 空間裡。因此我要先抓取 SharePoint 詳細資料
https://graph.microsoft.com/v1.0/sites/{hostname}:/sites/{site-name}
hostname: 這代表公司在微軟註冊的名稱,通常可以透過網址窺探端倪
site-name: 檔案具體是放在哪個 SharePoint 空間或者說 Teams 空間(可以參考上圖的網址結構,被我打馬賽克之處就是 site-name)
步驟 1 執行後你可以在 Response Review 看到有各種你有權限進入的 Teams 團隊的詳細資料,往下翻找後你會找到目標,而 Site ID 就是我們要取得的。
現在已經取得 SharePoint Site ID,接下來要取得 General 裡的檔案詳細資料,以下提供個別需要填入的紀錄
https://graph.microsoft.com/v1.0/sites/{hostname},{site-id},{web-id}/drives/{drive-id}/root:/path/to/yourfile.xlsm:/content
以下也提供各位參考我取得的(已經去機敏)結果https://graph.microsoft.com/v1.0/sites/kingsteeltw.sharepoint.com,97500000-4500-4004-0041-82d0f9d00000,88100000-7a00-4bb6-993c-d95dfe600003/drives/b!_UVSl0000000LQ-a1iohSaqOQrtenCAPk71J/root:/General:/children
最後你可以在 Response Review 看到 Excel ID,這個 ID 就能丟到 Power Automate 後,取得 Excel 裡面的 table 紀錄
將ID直接丟到 List row present in a table 的 file 裡就能抓到裡面的 table
如果各位想了解文中提到的相關知識,可以參考以下文章
列點摘要 by GenAI